<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>CANopenNode: SDO server</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">CANopenNode
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__CO__SDOserver.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#groups">Modules</a> &#124;
<a href="#files">Files</a> &#124;
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">SDO server<div class="ingroups"><a class="el" href="group__CO__CANopen__301.html">CANopen_301</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>CANopen Service Data Object - server protocol.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
Modules</h2></td></tr>
<tr class="memitem:group__CO__SDO__objectDictionary"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__SDO__objectDictionary.html">Object dictionary</a></td></tr>
<tr class="memdesc:group__CO__SDO__objectDictionary"><td class="mdescLeft">&#160;</td><td class="mdescRight">CANopen Object dictionary implementation in CANopenNode. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__CO__SDO__OD__function"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__SDO__OD__function.html">Object Dictionary function</a></td></tr>
<tr class="memdesc:group__CO__SDO__OD__function"><td class="mdescLeft">&#160;</td><td class="mdescRight">Optional application specific function, which may manipulate data downloaded or uploaded via SDO. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
Files</h2></td></tr>
<tr class="memitem:CO__SDOserver_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="CO__SDOserver_8h.html">CO_SDOserver.h</a></td></tr>
<tr class="memdesc:CO__SDOserver_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">CANopen Service Data Object - server protocol. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structCO__OD__entry__t.html">CO_OD_entry_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Object for one entry with specific index in <a class="el" href="group__CO__SDO__objectDictionary.html">Object dictionary</a>.  <a href="structCO__OD__entry__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structCO__OD__entryRecord__t.html">CO_OD_entryRecord_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Object for record type entry in <a class="el" href="group__CO__SDO__objectDictionary.html">Object dictionary</a>.  <a href="structCO__OD__entryRecord__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structCO__ODF__arg__t.html">CO_ODF_arg_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Object contains all information about the object being transferred by SDO server.  <a href="structCO__ODF__arg__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structCO__OD__extension__t.html">CO_OD_extension_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Object is used as array inside <a class="el" href="structCO__SDO__t.html" title="SDO server object. ">CO_SDO_t</a>, parallel to <a class="el" href="group__CO__SDO__objectDictionary.html">Object dictionary</a>.  <a href="structCO__OD__extension__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structCO__SDO__t.html">CO_SDO_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDO server object.  <a href="structCO__SDO__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga0b0e614dadcc1c005185b8bc9a7fec11"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__SDOserver.html#ga0b0e614dadcc1c005185b8bc9a7fec11">CO_SDO_state_t</a> { <br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11a2eee38ba2a2d52890281ae54b12d50b3">CO_SDO_ST_IDLE</a> = 0x00U, 
<a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11af94e05b6e74a6050fbfd1ded8072b921">CO_SDO_ST_LOCAL_TRANSFER</a> = 0x01U, 
<a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11ac40cb6c0b2f2eb1877aee3963dc1927d">CO_SDO_ST_ABORT</a> = 0x02U, 
<a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11ac07432ccfaa6be8730cc8c306b3e42bb">CO_SDO_ST_DOWNLOAD_INITIATE_REQ</a> = 0x11U, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11a49b060ebf39c4bfb498b8691c16bb882">CO_SDO_ST_DOWNLOAD_INITIATE_RSP</a> = 0x12U, 
<a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11a6b44777e7e209313612baab5f83745ff">CO_SDO_ST_DOWNLOAD_SEGMENT_REQ</a> = 0x13U, 
<a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11ae5b55aec51372cbc2a6e32ce1456c11c">CO_SDO_ST_DOWNLOAD_SEGMENT_RSP</a> = 0x14U, 
<a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11aa8a8b5050c6528fdaa19bbb429d8e4f4">CO_SDO_ST_UPLOAD_INITIATE_REQ</a> = 0x21U, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11aa096d10c9eb891cfedddc16276f58aaf">CO_SDO_ST_UPLOAD_INITIATE_RSP</a> = 0x22U, 
<a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11ad610c289b85192d70c835b033b49b3fb">CO_SDO_ST_UPLOAD_SEGMENT_REQ</a> = 0x23U, 
<a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11a210a3eb6acfdb055bb72a59d8e24a6b6">CO_SDO_ST_UPLOAD_SEGMENT_RSP</a> = 0x24U, 
<a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11a5d4ead9d3f06962987b6af8c073b6a2e">CO_SDO_ST_DOWNLOAD_BLK_INITIATE_REQ</a> = 0x31U, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11af25ee4e636a98dd72fe4c5bef9bcecf2">CO_SDO_ST_DOWNLOAD_BLK_INITIATE_RSP</a> = 0x32U, 
<a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11a320cc9749db35473265b5203c547bbf8">CO_SDO_ST_DOWNLOAD_BLK_SUBBLOCK_REQ</a> = 0x33U, 
<a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11a70e97f34a6a98014bef1d2eeb3b5247c">CO_SDO_ST_DOWNLOAD_BLK_SUBBLOCK_RSP</a> = 0x34U, 
<a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11af955593bb966b324bfda361b0364d15b">CO_SDO_ST_DOWNLOAD_BLK_END_REQ</a> = 0x35U, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11af511c26db1fb7ba18d6054255b560be7">CO_SDO_ST_DOWNLOAD_BLK_END_RSP</a> = 0x36U, 
<a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11a49b5c39c9e5d025c85eedffa28aa22ed">CO_SDO_ST_UPLOAD_BLK_INITIATE_REQ</a> = 0x41U, 
<a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11ae9be0eeb0711890d1b9c5cbfbd204ed8">CO_SDO_ST_UPLOAD_BLK_INITIATE_RSP</a> = 0x42U, 
<a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11acc4e87ad1ad20eddd19a60d9592bbada">CO_SDO_ST_UPLOAD_BLK_INITIATE_REQ2</a> = 0x43U, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11a39f1cb5426ee3c3689ed833cb66e231c">CO_SDO_ST_UPLOAD_BLK_SUBBLOCK_SREQ</a> = 0x44U, 
<a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11af762eb5a985cf79a3e7423a39b29b328">CO_SDO_ST_UPLOAD_BLK_SUBBLOCK_CRSP</a> = 0x45U, 
<a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11a98896138e97542e659051fff33b1a692">CO_SDO_ST_UPLOAD_BLK_END_SREQ</a> = 0x46U, 
<a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11ab75a573a45778a0c4bea2c50402be03e">CO_SDO_ST_UPLOAD_BLK_END_CRSP</a> = 0x47U
<br />
 }<tr class="memdesc:ga0b0e614dadcc1c005185b8bc9a7fec11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal states of the SDO state machine.  <a href="group__CO__SDOserver.html#ga0b0e614dadcc1c005185b8bc9a7fec11">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:ga0b0e614dadcc1c005185b8bc9a7fec11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7587ddcf798747fe6d97d03bf1bf2979"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__SDOserver.html#ga7587ddcf798747fe6d97d03bf1bf2979">CO_SDO_abortCode_t</a> { <br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979a5fc84558a4ca47e067189a14543691b6">CO_SDO_AB_NONE</a> = 0x00000000UL, 
<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979ad4e9214eab1d034e9c10eb6c7638e592">CO_SDO_AB_TOGGLE_BIT</a> = 0x05030000UL, 
<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979a036d0be874d10f66aa6601d76a9aa2f0">CO_SDO_AB_TIMEOUT</a> = 0x05040000UL, 
<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979a26b4e2680c16ce6a09d3e3a8293472ce">CO_SDO_AB_CMD</a> = 0x05040001UL, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979ac86b70b71d601658c93a1dd270a902b0">CO_SDO_AB_BLOCK_SIZE</a> = 0x05040002UL, 
<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979a778ef6b5751cb8ba10b67436409c3fd2">CO_SDO_AB_SEQ_NUM</a> = 0x05040003UL, 
<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979aee7fcab60a6fde6e41d999f5a2b10aa5">CO_SDO_AB_CRC</a> = 0x05040004UL, 
<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979adc021e79ace03edbd279a3c492853c7f">CO_SDO_AB_OUT_OF_MEM</a> = 0x05040005UL, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979a370ff72a5bddee5760ba0930c3b13ba0">CO_SDO_AB_UNSUPPORTED_ACCESS</a> = 0x06010000UL, 
<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979a457e80af0f952c272fa90ebd45cdb8cd">CO_SDO_AB_WRITEONLY</a> = 0x06010001UL, 
<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979a48c8a5f4939372564a17b31f992b82a4">CO_SDO_AB_READONLY</a> = 0x06010002UL, 
<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979a6ef5b921ac0f299f34e9860eb82e332e">CO_SDO_AB_NOT_EXIST</a> = 0x06020000UL, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979a729452df9557e4acbda8691efb4da310">CO_SDO_AB_NO_MAP</a> = 0x06040041UL, 
<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979a07edee9ce8ec5cd01cfd3cfbff48b96c">CO_SDO_AB_MAP_LEN</a> = 0x06040042UL, 
<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979acaedcf71c4638efb40fc6debfa9dba67">CO_SDO_AB_PRAM_INCOMPAT</a> = 0x06040043UL, 
<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979ad07acc06f76122627412a71f2f2e39fc">CO_SDO_AB_DEVICE_INCOMPAT</a> = 0x06040047UL, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979a070f096bb09f5a6235643702b5a40759">CO_SDO_AB_HW</a> = 0x06060000UL, 
<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979a838c274eaa14626514da8f7a8ac043c3">CO_SDO_AB_TYPE_MISMATCH</a> = 0x06070010UL, 
<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979a50d373f7a7ba976dc2277a2111cf56c3">CO_SDO_AB_DATA_LONG</a> = 0x06070012UL, 
<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979a481537e4c170066ca31b167fa598bb54">CO_SDO_AB_DATA_SHORT</a> = 0x06070013UL, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979a3e48e535fddeaa78a4059c2f91f9bb8e">CO_SDO_AB_SUB_UNKNOWN</a> = 0x06090011UL, 
<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979afff1ec491c628031e65672383f3e3c76">CO_SDO_AB_INVALID_VALUE</a> = 0x06090030UL, 
<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979a4983bce8e9503f9e7a720a44528036ad">CO_SDO_AB_VALUE_HIGH</a> = 0x06090031UL, 
<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979ab402816165086fbad21a130e9f488d52">CO_SDO_AB_VALUE_LOW</a> = 0x06090032UL, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979a15d49829c0d15f8cb9995f07617d874f">CO_SDO_AB_MAX_LESS_MIN</a> = 0x06090036UL, 
<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979ab54dd042727804cd8f310a04fd4575f7">CO_SDO_AB_NO_RESOURCE</a> = 0x060A0023UL, 
<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979a58d6be7d156bbe576b8438a6fd5b446d">CO_SDO_AB_GENERAL</a> = 0x08000000UL, 
<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979a631a043a79c7eef4ddb2f874365c6660">CO_SDO_AB_DATA_TRANSF</a> = 0x08000020UL, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979ac489bb77a98f65008932861924bc4bbf">CO_SDO_AB_DATA_LOC_CTRL</a> = 0x08000021UL, 
<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979ac92ccaa16d833cac6d2f6d8c2836d886">CO_SDO_AB_DATA_DEV_STATE</a> = 0x08000022UL, 
<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979aec1840b00621e92f27da2d0705ddab63">CO_SDO_AB_DATA_OD</a> = 0x08000023UL, 
<a class="el" href="group__CO__SDOserver.html#gga7587ddcf798747fe6d97d03bf1bf2979a3e007eeec7538b5dbe7e78240632b415">CO_SDO_AB_NO_DATA</a> = 0x08000024UL
<br />
 }<tr class="memdesc:ga7587ddcf798747fe6d97d03bf1bf2979"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDO abort codes.  <a href="group__CO__SDOserver.html#ga7587ddcf798747fe6d97d03bf1bf2979">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:ga7587ddcf798747fe6d97d03bf1bf2979"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0244f2d504e0de4f14614884d7319fd0"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__SDOserver.html#ga0244f2d504e0de4f14614884d7319fd0">CO_SDO_OD_attributes_t</a> { <br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga0244f2d504e0de4f14614884d7319fd0a6c44770c5882a6596aa1321cbb564909">CO_ODA_MEM_ROM</a> = 0x0001U, 
<a class="el" href="group__CO__SDOserver.html#gga0244f2d504e0de4f14614884d7319fd0ad4802ce45a193935b8390968e35ccdaf">CO_ODA_MEM_RAM</a> = 0x0002U, 
<a class="el" href="group__CO__SDOserver.html#gga0244f2d504e0de4f14614884d7319fd0aeb980ed24a537307d8acfe2bacaf6f7a">CO_ODA_MEM_EEPROM</a> = 0x0003U, 
<a class="el" href="group__CO__SDOserver.html#gga0244f2d504e0de4f14614884d7319fd0a7f69b7774e5880a1da8f8f143e1e11a1">CO_ODA_READABLE</a> = 0x0004U, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga0244f2d504e0de4f14614884d7319fd0a6a6e2a17f300ffb54760cd81eb0d1a47">CO_ODA_WRITEABLE</a> = 0x0008U, 
<a class="el" href="group__CO__SDOserver.html#gga0244f2d504e0de4f14614884d7319fd0af48f817af093863e2aec89bc4489ce6a">CO_ODA_RPDO_MAPABLE</a> = 0x0010U, 
<a class="el" href="group__CO__SDOserver.html#gga0244f2d504e0de4f14614884d7319fd0a0fefe0597ffeacc74628df2a5df711a8">CO_ODA_TPDO_MAPABLE</a> = 0x0020U, 
<a class="el" href="group__CO__SDOserver.html#gga0244f2d504e0de4f14614884d7319fd0ad6151378b9dfb0c4b2da15b9a4b43616">CO_ODA_TPDO_DETECT_COS</a> = 0x0040U, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga0244f2d504e0de4f14614884d7319fd0abaf5a51b0abc4a93a42010d0e0326be3">CO_ODA_MB_VALUE</a> = 0x0080U
<br />
 }<tr class="memdesc:ga0244f2d504e0de4f14614884d7319fd0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Object Dictionary attributes.  <a href="group__CO__SDOserver.html#ga0244f2d504e0de4f14614884d7319fd0">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:ga0244f2d504e0de4f14614884d7319fd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7940130bc04382e487b1153b8644e17e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__SDOserver.html#ga7940130bc04382e487b1153b8644e17e">CO_ObjDicId_t</a> { <br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17eaf1e65ef6eb730b9302540e0ba44852b1">OD_H1000_DEV_TYPE</a> = 0x1000U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17eaf4eb4e0204ae9696f935af5d4fdcff7e">OD_H1001_ERR_REG</a> = 0x1001U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea2cca52f61d70db5ca2aaa168b32f3aaf">OD_H1002_MANUF_STATUS_REG</a> = 0x1002U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17eadfc213af5af80cf037231621132013fb">OD_H1003_PREDEF_ERR_FIELD</a> = 0x1003U, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ead7d53fa95504566811bdf0683f645ccd">OD_H1004_RSV</a> = 0x1004U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17eadcbc9ec0c547b00db2b0403708becb97">OD_H1005_COBID_SYNC</a> = 0x1005U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea463dab19c27811dd6de51fcc082b565b">OD_H1006_COMM_CYCL_PERIOD</a> = 0x1006U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea41f7f0f96dbea4fb0d6bd2bbbd2d59dc">OD_H1007_SYNC_WINDOW_LEN</a> = 0x1007U, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17eaa282ef78e8a64ff527c79218d23168f0">OD_H1008_MANUF_DEV_NAME</a> = 0x1008U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ead91534dd5cc5f382287b9a392c744948">OD_H1009_MANUF_HW_VERSION</a> = 0x1009U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea8bd48d9bb18d1c291249050818c82a57">OD_H100A_MANUF_SW_VERSION</a> = 0x100AU, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea561260a506655cf0b7df9d684a08b5be">OD_H100B_RSV</a> = 0x100BU, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17eadf00d5b448274a91940cac15b8e22fc5">OD_H100C_GUARD_TIME</a> = 0x100CU, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea4bfbb36a82606125d52fbe4daff6b5fb">OD_H100D_LIFETIME_FACTOR</a> = 0x100DU, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea4d831b2a36d679d31982e35ca38f8f6e">OD_H100E_RSV</a> = 0x100EU, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea7d6a3f1ca8f72bf808ee5fe341f2acca">OD_H100F_RSV</a> = 0x100FU, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea0f8c3db5a62d5e4df59d83253b69b0f2">OD_H1010_STORE_PARAM_FUNC</a> = 0x1010U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17eadad8c0ea18f674f3eb61b43e8259395c">OD_H1011_REST_PARAM_FUNC</a> = 0x1011U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea5781f519d9ec08fd4389c4761754a4e6">OD_H1012_COBID_TIME</a> = 0x1012U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea7aa32b2b6df7c4d4354599ef2fd2ca29">OD_H1013_HIGH_RES_TIMESTAMP</a> = 0x1013U, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea5cae036f3dd0bc1861dcea7c9a83c6d5">OD_H1014_COBID_EMERGENCY</a> = 0x1014U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ead74bfefc9676af339d06deb74b702c7a">OD_H1015_INHIBIT_TIME_MSG</a> = 0x1015U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea996952cb963ce6e2783a6fa915d85612">OD_H1016_CONSUMER_HB_TIME</a> = 0x1016U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17eab2f428825c1127b286f5b8ace5e881b2">OD_H1017_PRODUCER_HB_TIME</a> = 0x1017U, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17eaabb7a688852e453c5535f663be6298d2">OD_H1018_IDENTITY_OBJECT</a> = 0x1018U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17eaa966d2e020222331b18c5b08261acbf0">OD_H1019_SYNC_CNT_OVERFLOW</a> = 0x1019U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea8c740bbdd0cb98200d402ec6272d7e8b">OD_H1020_VERIFY_CONFIG</a> = 0x1020U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea259737f7e9ef239d85cb9e7bdeda550b">OD_H1021_STORE_EDS</a> = 0x1021U, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea4061d54d1c1583fd178566a3915bcefe">OD_H1022_STORE_FORMAT</a> = 0x1022U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea12ba9d8cdfc20b9ff66167a8d1e5b21c">OD_H1023_OS_CMD</a> = 0x1023U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ead7e64256615fcda5b531063eeaa346de">OD_H1024_OS_CMD_MODE</a> = 0x1024U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17eaaf890d86468408b0dbe8353a3b270156">OD_H1025_OS_DBG_INTERFACE</a> = 0x1025U, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea6e3b80d148d22f129ed388fad9aaf398">OD_H1026_OS_PROMPT</a> = 0x1026U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea668cdf3b0102b753858b9bfeb7efdc1c">OD_H1027_MODULE_LIST</a> = 0x1027U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea6f093f4fdeaac7b723305fd8d2ce40c1">OD_H1028_EMCY_CONSUMER</a> = 0x1028U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea67d50722cc629ee8c2a90a123ee41fa3">OD_H1029_ERR_BEHAVIOR</a> = 0x1029U, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17eac340e91c28632a97e1cf1a96a6a12902">OD_H1200_SDO_SERVER_PARAM</a> = 0x1200U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17eabd786fad018ccfcdd1aa0e4c62aca4f8">OD_H1280_SDO_CLIENT_PARAM</a> = 0x1280U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17eae64bf5b7166b6adf46b8e965d43150a0">OD_H1400_RXPDO_1_PARAM</a> = 0x1400U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea7f4640cac5d5f252f19ab9e58653f993">OD_H1401_RXPDO_2_PARAM</a> = 0x1401U, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea6fd88812dbacc7d99a790f5f3192bbca">OD_H1402_RXPDO_3_PARAM</a> = 0x1402U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea8120b9f114d582ae9f1072838878ba93">OD_H1403_RXPDO_4_PARAM</a> = 0x1403U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea7ed53d283e4719920b233b9094b18f9c">OD_H1600_RXPDO_1_MAPPING</a> = 0x1600U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17eabcb72c00215d5c7c867f0e33a17b27ed">OD_H1601_RXPDO_2_MAPPING</a> = 0x1601U, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea18cc382fc4fd5e66b678dd5d7d904baf">OD_H1602_RXPDO_3_MAPPING</a> = 0x1602U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea8753d5c3de859426e8c12a3898029ebb">OD_H1603_RXPDO_4_MAPPING</a> = 0x1603U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17eaac35e48e4b717eef309ebb57876d30f1">OD_H1800_TXPDO_1_PARAM</a> = 0x1800U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17eaddbb9b98253ac3daa5eea2fcf665e7ae">OD_H1801_TXPDO_2_PARAM</a> = 0x1801U, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea450463cb4290494b70af8f395d8803ad">OD_H1802_TXPDO_3_PARAM</a> = 0x1802U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea9f1f26fbd19bf61a6c13005557234f9a">OD_H1803_TXPDO_4_PARAM</a> = 0x1803U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea2a2f1c4cc58d29ccf43e105afd57bc14">OD_H1A00_TXPDO_1_MAPPING</a> = 0x1A00U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17eae6d767510b02e8f058e2191e328378d1">OD_H1A01_TXPDO_2_MAPPING</a> = 0x1A01U, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea0f5557b5c35c297d1de4feeb859095ed">OD_H1A02_TXPDO_3_MAPPING</a> = 0x1A02U, 
<a class="el" href="group__CO__SDOserver.html#gga7940130bc04382e487b1153b8644e17ea0eee516146d4ff9a80578ea61c590340">OD_H1A03_TXPDO_4_MAPPING</a> = 0x1A03U
<br />
 }<tr class="memdesc:ga7940130bc04382e487b1153b8644e17e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Common DS301 object dictionary entries.  <a href="group__CO__SDOserver.html#ga7940130bc04382e487b1153b8644e17e">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:ga7940130bc04382e487b1153b8644e17e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga954a22b6af836082afaf69b0f0cc4c7e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__SDOserver.html#ga954a22b6af836082afaf69b0f0cc4c7e">CO_SDO_OD_flags_t</a> { <br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga954a22b6af836082afaf69b0f0cc4c7eab6ffa5b9c34eabbe123e527ea274002f">CO_ODFL_RPDO_WRITTEN</a> = 0x01U, 
<a class="el" href="group__CO__SDOserver.html#gga954a22b6af836082afaf69b0f0cc4c7eadc263192604b49113d0f522db5193ac5">CO_ODFL_TPDO_MAPPED</a> = 0x02U, 
<a class="el" href="group__CO__SDOserver.html#gga954a22b6af836082afaf69b0f0cc4c7eae53028509db3c26c163d6e7fd92804eb">CO_ODFL_TPDO_COS_ENABLE</a> = 0x04U, 
<a class="el" href="group__CO__SDOserver.html#gga954a22b6af836082afaf69b0f0cc4c7ea660ad8cae5dfa2d7f417087a0abe0fe8">CO_ODFL_TPDO_SEND</a> = 0x08U, 
<br />
&#160;&#160;<a class="el" href="group__CO__SDOserver.html#gga954a22b6af836082afaf69b0f0cc4c7eadaa440c58414085a01c939a8b9ef4090">CO_ODFL_SDO_DOWNLOADED</a> = 0x10U, 
<a class="el" href="group__CO__SDOserver.html#gga954a22b6af836082afaf69b0f0cc4c7eafaf968332fa858ddd8359db2b6c4c58a">CO_ODFL_SDO_UPLOADED</a> = 0x20U, 
<a class="el" href="group__CO__SDOserver.html#gga954a22b6af836082afaf69b0f0cc4c7eae7bcdbf312d9d7062b1b827644c4e9e0">CO_ODFL_BIT_6</a> = 0x40U, 
<a class="el" href="group__CO__SDOserver.html#gga954a22b6af836082afaf69b0f0cc4c7ea30068923dc551a4e937d9e57675ad8a8">CO_ODFL_BIT_7</a> = 0x80U
<br />
 }<tr class="memdesc:ga954a22b6af836082afaf69b0f0cc4c7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bit masks for flags associated with variable from <a class="el" href="group__CO__SDO__objectDictionary.html">Object dictionary</a>.  <a href="group__CO__SDOserver.html#ga954a22b6af836082afaf69b0f0cc4c7e">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:ga954a22b6af836082afaf69b0f0cc4c7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gaecb9ebca7a4f074d5e73ba977d6c2243"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CO__driver.html#ga1cb2d3466eb0c6d267f3b5ff1a0d9532">CO_ReturnError_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__SDOserver.html#gaecb9ebca7a4f074d5e73ba977d6c2243">CO_SDO_init</a> (<a class="el" href="structCO__SDO__t.html">CO_SDO_t</a> *SDO, <a class="el" href="group__CO__dataTypes.html#ga33594304e786b158f3fb30289278f5af">uint32_t</a> COB_IDClientToServer, <a class="el" href="group__CO__dataTypes.html#ga33594304e786b158f3fb30289278f5af">uint32_t</a> COB_IDServerToClient, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> ObjDictIndex_SDOServerParameter, <a class="el" href="structCO__SDO__t.html">CO_SDO_t</a> *parentSDO, const <a class="el" href="structCO__OD__entry__t.html">CO_OD_entry_t</a> OD[], <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> ODSize, <a class="el" href="structCO__OD__extension__t.html">CO_OD_extension_t</a> ODExtensions[], <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> nodeId, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> SDOtimeoutTime_ms, <a class="el" href="structCO__CANmodule__t.html">CO_CANmodule_t</a> *CANdevRx, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> CANdevRxIdx, <a class="el" href="structCO__CANmodule__t.html">CO_CANmodule_t</a> *CANdevTx, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> CANdevTxIdx)</td></tr>
<tr class="memdesc:gaecb9ebca7a4f074d5e73ba977d6c2243"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize SDO object.  <a href="#gaecb9ebca7a4f074d5e73ba977d6c2243">More...</a><br /></td></tr>
<tr class="separator:gaecb9ebca7a4f074d5e73ba977d6c2243"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga100bebd316fd456c67cfa945d97e0dee"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__SDOserver.html#ga100bebd316fd456c67cfa945d97e0dee">CO_SDO_initCallbackPre</a> (<a class="el" href="structCO__SDO__t.html">CO_SDO_t</a> *SDO, void *object, void(*pFunctSignalPre)(void *object))</td></tr>
<tr class="memdesc:ga100bebd316fd456c67cfa945d97e0dee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize SDOrx callback function.  <a href="#ga100bebd316fd456c67cfa945d97e0dee">More...</a><br /></td></tr>
<tr class="separator:ga100bebd316fd456c67cfa945d97e0dee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf9df5a4eef12be3e585e7601e64185bb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CO__dataTypes.html#gaef44329758059c91c76d334e8fc09700">int8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__SDOserver.html#gaf9df5a4eef12be3e585e7601e64185bb">CO_SDO_process</a> (<a class="el" href="structCO__SDO__t.html">CO_SDO_t</a> *SDO, <a class="el" href="group__CO__dataTypes.html#ga449976458a084f880dc8e3d29e7eb6f5">bool_t</a> NMTisPreOrOperational, <a class="el" href="group__CO__dataTypes.html#ga33594304e786b158f3fb30289278f5af">uint32_t</a> timeDifference_us, <a class="el" href="group__CO__dataTypes.html#ga33594304e786b158f3fb30289278f5af">uint32_t</a> *timerNext_us)</td></tr>
<tr class="memdesc:gaf9df5a4eef12be3e585e7601e64185bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process SDO communication.  <a href="#gaf9df5a4eef12be3e585e7601e64185bb">More...</a><br /></td></tr>
<tr class="separator:gaf9df5a4eef12be3e585e7601e64185bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab433430abe125bb16c08e7be3e034985"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__SDOserver.html#gab433430abe125bb16c08e7be3e034985">CO_OD_configure</a> (<a class="el" href="structCO__SDO__t.html">CO_SDO_t</a> *SDO, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> index, <a class="el" href="group__CO__SDOserver.html#ga7587ddcf798747fe6d97d03bf1bf2979">CO_SDO_abortCode_t</a>(*pODFunc)(<a class="el" href="structCO__ODF__arg__t.html">CO_ODF_arg_t</a> *ODF_arg), void *object, <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *flags, <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> flagsSize)</td></tr>
<tr class="memdesc:gab433430abe125bb16c08e7be3e034985"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configure additional functionality to one <a class="el" href="group__CO__SDO__objectDictionary.html">Object dictionary</a> entry.  <a href="#gab433430abe125bb16c08e7be3e034985">More...</a><br /></td></tr>
<tr class="separator:gab433430abe125bb16c08e7be3e034985"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2532cf0445a91285b6e06e67abb1135d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__SDOserver.html#ga2532cf0445a91285b6e06e67abb1135d">CO_OD_find</a> (<a class="el" href="structCO__SDO__t.html">CO_SDO_t</a> *SDO, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> index)</td></tr>
<tr class="memdesc:ga2532cf0445a91285b6e06e67abb1135d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find object with specific index in Object dictionary.  <a href="#ga2532cf0445a91285b6e06e67abb1135d">More...</a><br /></td></tr>
<tr class="separator:ga2532cf0445a91285b6e06e67abb1135d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad492842213f493a27c274b01c4e02075"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__SDOserver.html#gad492842213f493a27c274b01c4e02075">CO_OD_getLength</a> (<a class="el" href="structCO__SDO__t.html">CO_SDO_t</a> *SDO, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> entryNo, <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> subIndex)</td></tr>
<tr class="memdesc:gad492842213f493a27c274b01c4e02075"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get length of the given object with specific subIndex.  <a href="#gad492842213f493a27c274b01c4e02075">More...</a><br /></td></tr>
<tr class="separator:gad492842213f493a27c274b01c4e02075"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8adf901d3819dbbbc3bc978dd4783e9a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__SDOserver.html#ga8adf901d3819dbbbc3bc978dd4783e9a">CO_OD_getAttribute</a> (<a class="el" href="structCO__SDO__t.html">CO_SDO_t</a> *SDO, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> entryNo, <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> subIndex)</td></tr>
<tr class="memdesc:ga8adf901d3819dbbbc3bc978dd4783e9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get attribute of the given object with specific subIndex.  <a href="#ga8adf901d3819dbbbc3bc978dd4783e9a">More...</a><br /></td></tr>
<tr class="separator:ga8adf901d3819dbbbc3bc978dd4783e9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3ee04247261fbe560132584f727ed99d"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__SDOserver.html#ga3ee04247261fbe560132584f727ed99d">CO_OD_getDataPointer</a> (<a class="el" href="structCO__SDO__t.html">CO_SDO_t</a> *SDO, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> entryNo, <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> subIndex)</td></tr>
<tr class="memdesc:ga3ee04247261fbe560132584f727ed99d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get pointer to data of the given object with specific subIndex.  <a href="#ga3ee04247261fbe560132584f727ed99d">More...</a><br /></td></tr>
<tr class="separator:ga3ee04247261fbe560132584f727ed99d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga197661bebb5c451b3f4588fe1604f77d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__SDOserver.html#ga197661bebb5c451b3f4588fe1604f77d">CO_OD_getFlagsPointer</a> (<a class="el" href="structCO__SDO__t.html">CO_SDO_t</a> *SDO, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> entryNo, <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> subIndex)</td></tr>
<tr class="memdesc:ga197661bebb5c451b3f4588fe1604f77d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get pointer to the <a class="el" href="group__CO__SDOserver.html#ga954a22b6af836082afaf69b0f0cc4c7e" title="Bit masks for flags associated with variable from Object dictionary. ">CO_SDO_OD_flags_t</a> byte of the given object with specific subIndex.  <a href="#ga197661bebb5c451b3f4588fe1604f77d">More...</a><br /></td></tr>
<tr class="separator:ga197661bebb5c451b3f4588fe1604f77d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga872ca0abe8a4e717e5c03c93ab2b67bd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CO__dataTypes.html#ga33594304e786b158f3fb30289278f5af">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__SDOserver.html#ga872ca0abe8a4e717e5c03c93ab2b67bd">CO_SDO_initTransfer</a> (<a class="el" href="structCO__SDO__t.html">CO_SDO_t</a> *SDO, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> index, <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> subIndex)</td></tr>
<tr class="memdesc:ga872ca0abe8a4e717e5c03c93ab2b67bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize SDO transfer.  <a href="#ga872ca0abe8a4e717e5c03c93ab2b67bd">More...</a><br /></td></tr>
<tr class="separator:ga872ca0abe8a4e717e5c03c93ab2b67bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae4ed459948ee35f9417a16ea90257b18"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CO__dataTypes.html#ga33594304e786b158f3fb30289278f5af">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__SDOserver.html#gae4ed459948ee35f9417a16ea90257b18">CO_SDO_readOD</a> (<a class="el" href="structCO__SDO__t.html">CO_SDO_t</a> *SDO, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> SDOBufferSize)</td></tr>
<tr class="memdesc:gae4ed459948ee35f9417a16ea90257b18"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read data from <a class="el" href="group__CO__SDO__objectDictionary.html">Object dictionary</a> to internal buffer.  <a href="#gae4ed459948ee35f9417a16ea90257b18">More...</a><br /></td></tr>
<tr class="separator:gae4ed459948ee35f9417a16ea90257b18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga037d8b815828458a887aad47c3ca3f71"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CO__dataTypes.html#ga33594304e786b158f3fb30289278f5af">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__SDOserver.html#ga037d8b815828458a887aad47c3ca3f71">CO_SDO_writeOD</a> (<a class="el" href="structCO__SDO__t.html">CO_SDO_t</a> *SDO, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> length)</td></tr>
<tr class="memdesc:ga037d8b815828458a887aad47c3ca3f71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write data from internal buffer to <a class="el" href="group__CO__SDO__objectDictionary.html">Object dictionary</a>.  <a href="#ga037d8b815828458a887aad47c3ca3f71">More...</a><br /></td></tr>
<tr class="separator:ga037d8b815828458a887aad47c3ca3f71"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>CANopen Service Data Object - server protocol. </p>
<p>Service data objects (SDOs) allow the access to any entry of the CANopen Object dictionary. An SDO establishes a peer-to-peer communication channel between two devices. In addition, the SDO protocol enables to transfer any amount of data in a segmented way. Therefore the SDO protocol is mainly used in order to communicate configuration data.</p>
<p>All CANopen devices must have implemented SDO server and first SDO server channel. Servers serves data from Object dictionary. Object dictionary is a collection of variables, arrays or records (structures), which can be used by the stack or by the application. This file (<a class="el" href="CO__SDOserver_8h.html" title="CANopen Service Data Object - server protocol. ">CO_SDOserver.h</a>) implements SDO server.</p>
<p>SDO client can be (optionally) implemented on one (or multiple, if multiple SDO channels are used) device in CANopen network. Usually this is master device and provides also some kind of user interface, so configuration of the network is possible. Code for the SDO client is in file <a class="el" href="CO__SDOclient_8h.html" title="CANopen Service Data Object - client protocol. ">CO_SDOclient.h</a>.</p>
<p>SDO communication cycle is initiated by the client. Client can upload (read) data from device or can download (write) data to device. If data size is less or equal to 4 bytes, communication is finished by one server response (expedited transfer). If data size is longer, data are split into multiple segments of request/response pairs (normal or segmented transfer). For longer data there is also a block transfer protocol, which transfers larger block of data in secure way with little protocol overhead. If error occurs during SDO transfer <a class="el" href="group__CO__SDOserver.html#ga7587ddcf798747fe6d97d03bf1bf2979" title="SDO abort codes. ">CO_SDO_abortCode_t</a> is send by client or server and transfer is terminated. For more details see <a class="el" href="group__CO__SDOserver.html#ga0b0e614dadcc1c005185b8bc9a7fec11" title="Internal states of the SDO state machine. ">CO_SDO_state_t</a>. </p>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="ga7940130bc04382e487b1153b8644e17e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7940130bc04382e487b1153b8644e17e">&#9670;&nbsp;</a></span>CO_ObjDicId_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__CO__SDOserver.html#ga7940130bc04382e487b1153b8644e17e">CO_ObjDicId_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Common DS301 object dictionary entries. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17eaf1e65ef6eb730b9302540e0ba44852b1"></a>OD_H1000_DEV_TYPE&#160;</td><td class="fielddoc"><p>Device type. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17eaf4eb4e0204ae9696f935af5d4fdcff7e"></a>OD_H1001_ERR_REG&#160;</td><td class="fielddoc"><p>Error register. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea2cca52f61d70db5ca2aaa168b32f3aaf"></a>OD_H1002_MANUF_STATUS_REG&#160;</td><td class="fielddoc"><p>Manufacturer status register. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17eadfc213af5af80cf037231621132013fb"></a>OD_H1003_PREDEF_ERR_FIELD&#160;</td><td class="fielddoc"><p>Predefined error field. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ead7d53fa95504566811bdf0683f645ccd"></a>OD_H1004_RSV&#160;</td><td class="fielddoc"><p>Reserved. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17eadcbc9ec0c547b00db2b0403708becb97"></a>OD_H1005_COBID_SYNC&#160;</td><td class="fielddoc"><p>Sync message cob-id. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea463dab19c27811dd6de51fcc082b565b"></a>OD_H1006_COMM_CYCL_PERIOD&#160;</td><td class="fielddoc"><p>Communication cycle period. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea41f7f0f96dbea4fb0d6bd2bbbd2d59dc"></a>OD_H1007_SYNC_WINDOW_LEN&#160;</td><td class="fielddoc"><p>Sync windows length. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17eaa282ef78e8a64ff527c79218d23168f0"></a>OD_H1008_MANUF_DEV_NAME&#160;</td><td class="fielddoc"><p>Manufacturer device name. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ead91534dd5cc5f382287b9a392c744948"></a>OD_H1009_MANUF_HW_VERSION&#160;</td><td class="fielddoc"><p>Manufacturer hardware version. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea8bd48d9bb18d1c291249050818c82a57"></a>OD_H100A_MANUF_SW_VERSION&#160;</td><td class="fielddoc"><p>Manufacturer software version. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea561260a506655cf0b7df9d684a08b5be"></a>OD_H100B_RSV&#160;</td><td class="fielddoc"><p>Reserved. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17eadf00d5b448274a91940cac15b8e22fc5"></a>OD_H100C_GUARD_TIME&#160;</td><td class="fielddoc"><p>Guard time. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea4bfbb36a82606125d52fbe4daff6b5fb"></a>OD_H100D_LIFETIME_FACTOR&#160;</td><td class="fielddoc"><p>Life time factor. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea4d831b2a36d679d31982e35ca38f8f6e"></a>OD_H100E_RSV&#160;</td><td class="fielddoc"><p>Reserved. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea7d6a3f1ca8f72bf808ee5fe341f2acca"></a>OD_H100F_RSV&#160;</td><td class="fielddoc"><p>Reserved. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea0f8c3db5a62d5e4df59d83253b69b0f2"></a>OD_H1010_STORE_PARAM_FUNC&#160;</td><td class="fielddoc"><p>Store parameter in persistent memory function. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17eadad8c0ea18f674f3eb61b43e8259395c"></a>OD_H1011_REST_PARAM_FUNC&#160;</td><td class="fielddoc"><p>Restore default parameter function. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea5781f519d9ec08fd4389c4761754a4e6"></a>OD_H1012_COBID_TIME&#160;</td><td class="fielddoc"><p>Timestamp message cob-id. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea7aa32b2b6df7c4d4354599ef2fd2ca29"></a>OD_H1013_HIGH_RES_TIMESTAMP&#160;</td><td class="fielddoc"><p>High resolution timestamp. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea5cae036f3dd0bc1861dcea7c9a83c6d5"></a>OD_H1014_COBID_EMERGENCY&#160;</td><td class="fielddoc"><p>Emergency message cob-id. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ead74bfefc9676af339d06deb74b702c7a"></a>OD_H1015_INHIBIT_TIME_MSG&#160;</td><td class="fielddoc"><p>Inhibit time message. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea996952cb963ce6e2783a6fa915d85612"></a>OD_H1016_CONSUMER_HB_TIME&#160;</td><td class="fielddoc"><p>Consumer heartbeat time. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17eab2f428825c1127b286f5b8ace5e881b2"></a>OD_H1017_PRODUCER_HB_TIME&#160;</td><td class="fielddoc"><p>Producer heartbeat time. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17eaabb7a688852e453c5535f663be6298d2"></a>OD_H1018_IDENTITY_OBJECT&#160;</td><td class="fielddoc"><p>Identity object. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17eaa966d2e020222331b18c5b08261acbf0"></a>OD_H1019_SYNC_CNT_OVERFLOW&#160;</td><td class="fielddoc"><p>Sync counter overflow value. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea8c740bbdd0cb98200d402ec6272d7e8b"></a>OD_H1020_VERIFY_CONFIG&#160;</td><td class="fielddoc"><p>Verify configuration. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea259737f7e9ef239d85cb9e7bdeda550b"></a>OD_H1021_STORE_EDS&#160;</td><td class="fielddoc"><p>Store EDS. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea4061d54d1c1583fd178566a3915bcefe"></a>OD_H1022_STORE_FORMAT&#160;</td><td class="fielddoc"><p>Store format. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea12ba9d8cdfc20b9ff66167a8d1e5b21c"></a>OD_H1023_OS_CMD&#160;</td><td class="fielddoc"><p>OS command. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ead7e64256615fcda5b531063eeaa346de"></a>OD_H1024_OS_CMD_MODE&#160;</td><td class="fielddoc"><p>OS command mode. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17eaaf890d86468408b0dbe8353a3b270156"></a>OD_H1025_OS_DBG_INTERFACE&#160;</td><td class="fielddoc"><p>OS debug interface. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea6e3b80d148d22f129ed388fad9aaf398"></a>OD_H1026_OS_PROMPT&#160;</td><td class="fielddoc"><p>OS prompt. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea668cdf3b0102b753858b9bfeb7efdc1c"></a>OD_H1027_MODULE_LIST&#160;</td><td class="fielddoc"><p>Module list. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea6f093f4fdeaac7b723305fd8d2ce40c1"></a>OD_H1028_EMCY_CONSUMER&#160;</td><td class="fielddoc"><p>Emergency consumer object. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea67d50722cc629ee8c2a90a123ee41fa3"></a>OD_H1029_ERR_BEHAVIOR&#160;</td><td class="fielddoc"><p>Error behaviour. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17eac340e91c28632a97e1cf1a96a6a12902"></a>OD_H1200_SDO_SERVER_PARAM&#160;</td><td class="fielddoc"><p>SDO server parameters. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17eabd786fad018ccfcdd1aa0e4c62aca4f8"></a>OD_H1280_SDO_CLIENT_PARAM&#160;</td><td class="fielddoc"><p>SDO client parameters. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17eae64bf5b7166b6adf46b8e965d43150a0"></a>OD_H1400_RXPDO_1_PARAM&#160;</td><td class="fielddoc"><p>RXPDO communication parameter. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea7f4640cac5d5f252f19ab9e58653f993"></a>OD_H1401_RXPDO_2_PARAM&#160;</td><td class="fielddoc"><p>RXPDO communication parameter. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea6fd88812dbacc7d99a790f5f3192bbca"></a>OD_H1402_RXPDO_3_PARAM&#160;</td><td class="fielddoc"><p>RXPDO communication parameter. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea8120b9f114d582ae9f1072838878ba93"></a>OD_H1403_RXPDO_4_PARAM&#160;</td><td class="fielddoc"><p>RXPDO communication parameter. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea7ed53d283e4719920b233b9094b18f9c"></a>OD_H1600_RXPDO_1_MAPPING&#160;</td><td class="fielddoc"><p>RXPDO mapping parameters. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17eabcb72c00215d5c7c867f0e33a17b27ed"></a>OD_H1601_RXPDO_2_MAPPING&#160;</td><td class="fielddoc"><p>RXPDO mapping parameters. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea18cc382fc4fd5e66b678dd5d7d904baf"></a>OD_H1602_RXPDO_3_MAPPING&#160;</td><td class="fielddoc"><p>RXPDO mapping parameters. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea8753d5c3de859426e8c12a3898029ebb"></a>OD_H1603_RXPDO_4_MAPPING&#160;</td><td class="fielddoc"><p>RXPDO mapping parameters. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17eaac35e48e4b717eef309ebb57876d30f1"></a>OD_H1800_TXPDO_1_PARAM&#160;</td><td class="fielddoc"><p>TXPDO communication parameter. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17eaddbb9b98253ac3daa5eea2fcf665e7ae"></a>OD_H1801_TXPDO_2_PARAM&#160;</td><td class="fielddoc"><p>TXPDO communication parameter. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea450463cb4290494b70af8f395d8803ad"></a>OD_H1802_TXPDO_3_PARAM&#160;</td><td class="fielddoc"><p>TXPDO communication parameter. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea9f1f26fbd19bf61a6c13005557234f9a"></a>OD_H1803_TXPDO_4_PARAM&#160;</td><td class="fielddoc"><p>TXPDO communication parameter. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea2a2f1c4cc58d29ccf43e105afd57bc14"></a>OD_H1A00_TXPDO_1_MAPPING&#160;</td><td class="fielddoc"><p>TXPDO mapping parameters. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17eae6d767510b02e8f058e2191e328378d1"></a>OD_H1A01_TXPDO_2_MAPPING&#160;</td><td class="fielddoc"><p>TXPDO mapping parameters. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea0f5557b5c35c297d1de4feeb859095ed"></a>OD_H1A02_TXPDO_3_MAPPING&#160;</td><td class="fielddoc"><p>TXPDO mapping parameters. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7940130bc04382e487b1153b8644e17ea0eee516146d4ff9a80578ea61c590340"></a>OD_H1A03_TXPDO_4_MAPPING&#160;</td><td class="fielddoc"><p>TXPDO mapping parameters. </p>
</td></tr>
</table>

</div>
</div>
<a id="ga7587ddcf798747fe6d97d03bf1bf2979"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7587ddcf798747fe6d97d03bf1bf2979">&#9670;&nbsp;</a></span>CO_SDO_abortCode_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__CO__SDOserver.html#ga7587ddcf798747fe6d97d03bf1bf2979">CO_SDO_abortCode_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>SDO abort codes. </p>
<p>Send with Abort SDO transfer message.</p>
<p>The abort codes not listed here are reserved. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979a5fc84558a4ca47e067189a14543691b6"></a>CO_SDO_AB_NONE&#160;</td><td class="fielddoc"><p>0x00000000, No abort </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979ad4e9214eab1d034e9c10eb6c7638e592"></a>CO_SDO_AB_TOGGLE_BIT&#160;</td><td class="fielddoc"><p>0x05030000, Toggle bit not altered </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979a036d0be874d10f66aa6601d76a9aa2f0"></a>CO_SDO_AB_TIMEOUT&#160;</td><td class="fielddoc"><p>0x05040000, SDO protocol timed out </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979a26b4e2680c16ce6a09d3e3a8293472ce"></a>CO_SDO_AB_CMD&#160;</td><td class="fielddoc"><p>0x05040001, Command specifier not valid or unknown </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979ac86b70b71d601658c93a1dd270a902b0"></a>CO_SDO_AB_BLOCK_SIZE&#160;</td><td class="fielddoc"><p>0x05040002, Invalid block size in block mode </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979a778ef6b5751cb8ba10b67436409c3fd2"></a>CO_SDO_AB_SEQ_NUM&#160;</td><td class="fielddoc"><p>0x05040003, Invalid sequence number in block mode </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979aee7fcab60a6fde6e41d999f5a2b10aa5"></a>CO_SDO_AB_CRC&#160;</td><td class="fielddoc"><p>0x05040004, CRC error (block mode only) </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979adc021e79ace03edbd279a3c492853c7f"></a>CO_SDO_AB_OUT_OF_MEM&#160;</td><td class="fielddoc"><p>0x05040005, Out of memory </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979a370ff72a5bddee5760ba0930c3b13ba0"></a>CO_SDO_AB_UNSUPPORTED_ACCESS&#160;</td><td class="fielddoc"><p>0x06010000, Unsupported access to an object </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979a457e80af0f952c272fa90ebd45cdb8cd"></a>CO_SDO_AB_WRITEONLY&#160;</td><td class="fielddoc"><p>0x06010001, Attempt to read a write only object </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979a48c8a5f4939372564a17b31f992b82a4"></a>CO_SDO_AB_READONLY&#160;</td><td class="fielddoc"><p>0x06010002, Attempt to write a read only object </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979a6ef5b921ac0f299f34e9860eb82e332e"></a>CO_SDO_AB_NOT_EXIST&#160;</td><td class="fielddoc"><p>0x06020000, Object does not exist </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979a729452df9557e4acbda8691efb4da310"></a>CO_SDO_AB_NO_MAP&#160;</td><td class="fielddoc"><p>0x06040041, Object cannot be mapped to the PDO </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979a07edee9ce8ec5cd01cfd3cfbff48b96c"></a>CO_SDO_AB_MAP_LEN&#160;</td><td class="fielddoc"><p>0x06040042, Number and length of object to be mapped exceeds PDO length </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979acaedcf71c4638efb40fc6debfa9dba67"></a>CO_SDO_AB_PRAM_INCOMPAT&#160;</td><td class="fielddoc"><p>0x06040043, General parameter incompatibility reasons </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979ad07acc06f76122627412a71f2f2e39fc"></a>CO_SDO_AB_DEVICE_INCOMPAT&#160;</td><td class="fielddoc"><p>0x06040047, General internal incompatibility in device </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979a070f096bb09f5a6235643702b5a40759"></a>CO_SDO_AB_HW&#160;</td><td class="fielddoc"><p>0x06060000, Access failed due to hardware error </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979a838c274eaa14626514da8f7a8ac043c3"></a>CO_SDO_AB_TYPE_MISMATCH&#160;</td><td class="fielddoc"><p>0x06070010, Data type does not match, length of service parameter does not match </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979a50d373f7a7ba976dc2277a2111cf56c3"></a>CO_SDO_AB_DATA_LONG&#160;</td><td class="fielddoc"><p>0x06070012, Data type does not match, length of service parameter too high </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979a481537e4c170066ca31b167fa598bb54"></a>CO_SDO_AB_DATA_SHORT&#160;</td><td class="fielddoc"><p>0x06070013, Data type does not match, length of service parameter too short </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979a3e48e535fddeaa78a4059c2f91f9bb8e"></a>CO_SDO_AB_SUB_UNKNOWN&#160;</td><td class="fielddoc"><p>0x06090011, Sub index does not exist </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979afff1ec491c628031e65672383f3e3c76"></a>CO_SDO_AB_INVALID_VALUE&#160;</td><td class="fielddoc"><p>0x06090030, Invalid value for parameter (download only). </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979a4983bce8e9503f9e7a720a44528036ad"></a>CO_SDO_AB_VALUE_HIGH&#160;</td><td class="fielddoc"><p>0x06090031, Value range of parameter written too high </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979ab402816165086fbad21a130e9f488d52"></a>CO_SDO_AB_VALUE_LOW&#160;</td><td class="fielddoc"><p>0x06090032, Value range of parameter written too low </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979a15d49829c0d15f8cb9995f07617d874f"></a>CO_SDO_AB_MAX_LESS_MIN&#160;</td><td class="fielddoc"><p>0x06090036, Maximum value is less than minimum value. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979ab54dd042727804cd8f310a04fd4575f7"></a>CO_SDO_AB_NO_RESOURCE&#160;</td><td class="fielddoc"><p>0x060A0023, Resource not available: SDO connection </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979a58d6be7d156bbe576b8438a6fd5b446d"></a>CO_SDO_AB_GENERAL&#160;</td><td class="fielddoc"><p>0x08000000, General error </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979a631a043a79c7eef4ddb2f874365c6660"></a>CO_SDO_AB_DATA_TRANSF&#160;</td><td class="fielddoc"><p>0x08000020, Data cannot be transferred or stored to application </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979ac489bb77a98f65008932861924bc4bbf"></a>CO_SDO_AB_DATA_LOC_CTRL&#160;</td><td class="fielddoc"><p>0x08000021, Data cannot be transferred or stored to application because of local control </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979ac92ccaa16d833cac6d2f6d8c2836d886"></a>CO_SDO_AB_DATA_DEV_STATE&#160;</td><td class="fielddoc"><p>0x08000022, Data cannot be transferred or stored to application because of present device state </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979aec1840b00621e92f27da2d0705ddab63"></a>CO_SDO_AB_DATA_OD&#160;</td><td class="fielddoc"><p>0x08000023, Object dictionary not present or dynamic generation fails </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7587ddcf798747fe6d97d03bf1bf2979a3e007eeec7538b5dbe7e78240632b415"></a>CO_SDO_AB_NO_DATA&#160;</td><td class="fielddoc"><p>0x08000024, No data available </p>
</td></tr>
</table>

</div>
</div>
<a id="ga0244f2d504e0de4f14614884d7319fd0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0244f2d504e0de4f14614884d7319fd0">&#9670;&nbsp;</a></span>CO_SDO_OD_attributes_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__CO__SDOserver.html#ga0244f2d504e0de4f14614884d7319fd0">CO_SDO_OD_attributes_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Object Dictionary attributes. </p>
<p>Bit masks for attribute in <a class="el" href="structCO__OD__entry__t.html" title="Object for one entry with specific index in Object dictionary. ">CO_OD_entry_t</a>. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga0244f2d504e0de4f14614884d7319fd0a6c44770c5882a6596aa1321cbb564909"></a>CO_ODA_MEM_ROM&#160;</td><td class="fielddoc"><p>Variable is located in ROM memory. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0244f2d504e0de4f14614884d7319fd0ad4802ce45a193935b8390968e35ccdaf"></a>CO_ODA_MEM_RAM&#160;</td><td class="fielddoc"><p>Variable is located in RAM memory. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0244f2d504e0de4f14614884d7319fd0aeb980ed24a537307d8acfe2bacaf6f7a"></a>CO_ODA_MEM_EEPROM&#160;</td><td class="fielddoc"><p>Variable is located in EEPROM memory. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0244f2d504e0de4f14614884d7319fd0a7f69b7774e5880a1da8f8f143e1e11a1"></a>CO_ODA_READABLE&#160;</td><td class="fielddoc"><p>SDO server may read from the variable. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0244f2d504e0de4f14614884d7319fd0a6a6e2a17f300ffb54760cd81eb0d1a47"></a>CO_ODA_WRITEABLE&#160;</td><td class="fielddoc"><p>SDO server may write to the variable. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0244f2d504e0de4f14614884d7319fd0af48f817af093863e2aec89bc4489ce6a"></a>CO_ODA_RPDO_MAPABLE&#160;</td><td class="fielddoc"><p>Variable is mappable for RPDO. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0244f2d504e0de4f14614884d7319fd0a0fefe0597ffeacc74628df2a5df711a8"></a>CO_ODA_TPDO_MAPABLE&#160;</td><td class="fielddoc"><p>Variable is mappable for TPDO. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0244f2d504e0de4f14614884d7319fd0ad6151378b9dfb0c4b2da15b9a4b43616"></a>CO_ODA_TPDO_DETECT_COS&#160;</td><td class="fielddoc"><p>If variable is mapped to any PDO, then PDO is automatically send, if variable changes its value. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga0244f2d504e0de4f14614884d7319fd0abaf5a51b0abc4a93a42010d0e0326be3"></a>CO_ODA_MB_VALUE&#160;</td><td class="fielddoc"><p>True when variable is a multibyte value. </p>
</td></tr>
</table>

</div>
</div>
<a id="ga954a22b6af836082afaf69b0f0cc4c7e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga954a22b6af836082afaf69b0f0cc4c7e">&#9670;&nbsp;</a></span>CO_SDO_OD_flags_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__CO__SDOserver.html#ga954a22b6af836082afaf69b0f0cc4c7e">CO_SDO_OD_flags_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Bit masks for flags associated with variable from <a class="el" href="group__CO__SDO__objectDictionary.html">Object dictionary</a>. </p>
<p>This additional functionality of any variable in <a class="el" href="group__CO__SDO__objectDictionary.html">Object dictionary</a> can be enabled by function <a class="el" href="group__CO__SDOserver.html#gab433430abe125bb16c08e7be3e034985" title="Configure additional functionality to one Object dictionary entry. ">CO_OD_configure()</a>. Location of the flag byte can be get from function <a class="el" href="group__CO__SDOserver.html#ga197661bebb5c451b3f4588fe1604f77d" title="Get pointer to the CO_SDO_OD_flags_t byte of the given object with specific subIndex. ">CO_OD_getFlagsPointer()</a>. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga954a22b6af836082afaf69b0f0cc4c7eab6ffa5b9c34eabbe123e527ea274002f"></a>CO_ODFL_RPDO_WRITTEN&#160;</td><td class="fielddoc"><p>Variable was written by RPDO. </p>
<p>Flag can be cleared by application </p>
</td></tr>
<tr><td class="fieldname"><a id="gga954a22b6af836082afaf69b0f0cc4c7eadc263192604b49113d0f522db5193ac5"></a>CO_ODFL_TPDO_MAPPED&#160;</td><td class="fielddoc"><p>Variable is mapped to TPDO. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga954a22b6af836082afaf69b0f0cc4c7eae53028509db3c26c163d6e7fd92804eb"></a>CO_ODFL_TPDO_COS_ENABLE&#160;</td><td class="fielddoc"><p>Change of state bit, initially copy of attribute from <a class="el" href="structCO__OD__entry__t.html" title="Object for one entry with specific index in Object dictionary. ">CO_OD_entry_t</a>. </p>
<p>If set and variable is mapped to TPDO, TPDO will be automatically send, if variable changed </p>
</td></tr>
<tr><td class="fieldname"><a id="gga954a22b6af836082afaf69b0f0cc4c7ea660ad8cae5dfa2d7f417087a0abe0fe8"></a>CO_ODFL_TPDO_SEND&#160;</td><td class="fielddoc"><p>PDO send bit, can be set by application. </p>
<p>If variable is mapped into TPDO, TPDO will be send and bit will be cleared. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga954a22b6af836082afaf69b0f0cc4c7eadaa440c58414085a01c939a8b9ef4090"></a>CO_ODFL_SDO_DOWNLOADED&#160;</td><td class="fielddoc"><p>Variable was accessed by SDO download. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga954a22b6af836082afaf69b0f0cc4c7eafaf968332fa858ddd8359db2b6c4c58a"></a>CO_ODFL_SDO_UPLOADED&#160;</td><td class="fielddoc"><p>Variable was accessed by SDO upload. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga954a22b6af836082afaf69b0f0cc4c7eae7bcdbf312d9d7062b1b827644c4e9e0"></a>CO_ODFL_BIT_6&#160;</td><td class="fielddoc"><p>Reserved. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga954a22b6af836082afaf69b0f0cc4c7ea30068923dc551a4e937d9e57675ad8a8"></a>CO_ODFL_BIT_7&#160;</td><td class="fielddoc"><p>Reserved. </p>
</td></tr>
</table>

</div>
</div>
<a id="ga0b0e614dadcc1c005185b8bc9a7fec11"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0b0e614dadcc1c005185b8bc9a7fec11">&#9670;&nbsp;</a></span>CO_SDO_state_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__CO__SDOserver.html#ga0b0e614dadcc1c005185b8bc9a7fec11">CO_SDO_state_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Internal states of the SDO state machine. </p>
<p>Note: CANopen has little endian byte order. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga0b0e614dadcc1c005185b8bc9a7fec11a2eee38ba2a2d52890281ae54b12d50b3"></a>CO_SDO_ST_IDLE&#160;</td><td class="fielddoc"><ul>
<li>SDO client may start new download to or upload from specified node, specified index and specified subindex. It can start normal or block communication.</li>
<li>SDO server is waiting for client request. </li>
</ul>
</td></tr>
<tr><td class="fieldname"><a id="gga0b0e614dadcc1c005185b8bc9a7fec11af94e05b6e74a6050fbfd1ded8072b921"></a>CO_SDO_ST_LOCAL_TRANSFER&#160;</td><td class="fielddoc"><ul>
<li>SDO client: Node-ID of the SDO server is the same as node-ID of this node, SDO client is the same device as SDO server. Transfer data directly without communication on CAN.</li>
<li>SDO server does not use this state. </li>
</ul>
</td></tr>
<tr><td class="fieldname"><a id="gga0b0e614dadcc1c005185b8bc9a7fec11ac40cb6c0b2f2eb1877aee3963dc1927d"></a>CO_SDO_ST_ABORT&#160;</td><td class="fielddoc"><ul>
<li>SDO client or server may send SDO abort message in case of error:<ul>
<li>byte 0: <b>10000000</b> binary.</li>
<li>byte 1..3: Object index and subIndex.</li>
<li>byte 4..7: <a class="el" href="group__CO__SDOserver.html#ga7587ddcf798747fe6d97d03bf1bf2979" title="SDO abort codes. ">CO_SDO_abortCode_t</a>. </li>
</ul>
</li>
</ul>
</td></tr>
<tr><td class="fieldname"><a id="gga0b0e614dadcc1c005185b8bc9a7fec11ac07432ccfaa6be8730cc8c306b3e42bb"></a>CO_SDO_ST_DOWNLOAD_INITIATE_REQ&#160;</td><td class="fielddoc"><ul>
<li>SDO client initiates SDO download:<ul>
<li>byte 0: <b>0010nnes</b> binary: (nn: if e=s=1, number of data bytes, that do <b>not</b> contain data; e=1 for expedited transfer; s=1 if data size is indicated.)</li>
<li>byte 1..3: Object index and subIndex.</li>
<li>byte 4..7: If e=1, expedited data are here. If e=0 s=1, size of data for segmented transfer is indicated here.</li>
</ul>
</li>
<li>SDO server is in <a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11a2eee38ba2a2d52890281ae54b12d50b3">CO_SDO_ST_IDLE</a> state and waits for client request. </li>
</ul>
</td></tr>
<tr><td class="fieldname"><a id="gga0b0e614dadcc1c005185b8bc9a7fec11a49b060ebf39c4bfb498b8691c16bb882"></a>CO_SDO_ST_DOWNLOAD_INITIATE_RSP&#160;</td><td class="fielddoc"><ul>
<li>SDO client waits for response.</li>
<li>SDO server responses:<ul>
<li>byte 0: <b>01100000</b> binary.</li>
<li>byte 1..3: Object index and subIndex.</li>
<li>byte 4..7: Reserved.</li>
</ul>
</li>
<li>In case of expedited transfer communication ends here. </li>
</ul>
</td></tr>
<tr><td class="fieldname"><a id="gga0b0e614dadcc1c005185b8bc9a7fec11a6b44777e7e209313612baab5f83745ff"></a>CO_SDO_ST_DOWNLOAD_SEGMENT_REQ&#160;</td><td class="fielddoc"><ul>
<li>SDO client sends SDO segment:<ul>
<li>byte 0: <b>000tnnnc</b> binary: (t: toggle bit, set to 0 in first segment; nnn: number of data bytes, that do <b>not</b> contain data; c=1 if this is the last segment).</li>
<li>byte 1..7: Data segment.</li>
</ul>
</li>
<li>SDO server waits for segment. </li>
</ul>
</td></tr>
<tr><td class="fieldname"><a id="gga0b0e614dadcc1c005185b8bc9a7fec11ae5b55aec51372cbc2a6e32ce1456c11c"></a>CO_SDO_ST_DOWNLOAD_SEGMENT_RSP&#160;</td><td class="fielddoc"><ul>
<li>SDO client waits for response.</li>
<li>SDO server responses:<ul>
<li>byte 0: <b>001t0000</b> binary: (t: toggle bit, set to 0 in first segment).</li>
<li>byte 1..7: Reserved.</li>
</ul>
</li>
<li>If c was set to 1, then communication ends here. </li>
</ul>
</td></tr>
<tr><td class="fieldname"><a id="gga0b0e614dadcc1c005185b8bc9a7fec11aa8a8b5050c6528fdaa19bbb429d8e4f4"></a>CO_SDO_ST_UPLOAD_INITIATE_REQ&#160;</td><td class="fielddoc"><ul>
<li>SDO client initiates SDO upload:<ul>
<li>byte 0: <b>01000000</b> binary.</li>
<li>byte 1..3: Object index and subIndex.</li>
<li>byte 4..7: Reserved.</li>
</ul>
</li>
<li>SDO server is in <a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11a2eee38ba2a2d52890281ae54b12d50b3">CO_SDO_ST_IDLE</a> state and waits for client request. </li>
</ul>
</td></tr>
<tr><td class="fieldname"><a id="gga0b0e614dadcc1c005185b8bc9a7fec11aa096d10c9eb891cfedddc16276f58aaf"></a>CO_SDO_ST_UPLOAD_INITIATE_RSP&#160;</td><td class="fielddoc"><ul>
<li>SDO client waits for response.</li>
<li>SDO server responses:<ul>
<li>byte 0: <b>0100nnes</b> binary: (nn: if e=s=1, number of data bytes, that do <b>not</b> contain data; e=1 for expedited transfer; s=1 if data size is indicated).</li>
<li>byte 1..3: Object index and subIndex.</li>
<li>byte 4..7: If e=1, expedited data are here. If e=0 s=1, size of data for segmented transfer is indicated here.</li>
</ul>
</li>
<li>In case of expedited transfer communication ends here. </li>
</ul>
</td></tr>
<tr><td class="fieldname"><a id="gga0b0e614dadcc1c005185b8bc9a7fec11ad610c289b85192d70c835b033b49b3fb"></a>CO_SDO_ST_UPLOAD_SEGMENT_REQ&#160;</td><td class="fielddoc"><ul>
<li>SDO client requests SDO segment:<ul>
<li>byte 0: <b>011t0000</b> binary: (t: toggle bit, set to 0 in first segment).</li>
<li>byte 1..7: Reserved.</li>
</ul>
</li>
<li>SDO server waits for segment request. </li>
</ul>
</td></tr>
<tr><td class="fieldname"><a id="gga0b0e614dadcc1c005185b8bc9a7fec11a210a3eb6acfdb055bb72a59d8e24a6b6"></a>CO_SDO_ST_UPLOAD_SEGMENT_RSP&#160;</td><td class="fielddoc"><ul>
<li>SDO client waits for response.</li>
<li>SDO server responses with data:<ul>
<li>byte 0: <b>000tnnnc</b> binary: (t: toggle bit, set to 0 in first segment; nnn: number of data bytes, that do <b>not</b> contain data; c=1 if this is the last segment).</li>
<li>byte 1..7: Data segment.</li>
</ul>
</li>
<li>If c is set to 1, then communication ends here. </li>
</ul>
</td></tr>
<tr><td class="fieldname"><a id="gga0b0e614dadcc1c005185b8bc9a7fec11a5d4ead9d3f06962987b6af8c073b6a2e"></a>CO_SDO_ST_DOWNLOAD_BLK_INITIATE_REQ&#160;</td><td class="fielddoc"><ul>
<li>SDO client initiates SDO block download:<ul>
<li>byte 0: <b>11000rs0</b> binary: (r=1 if client supports generating CRC on data; s=1 if data size is indicated.)</li>
<li>byte 1..3: Object index and subIndex.</li>
<li>byte 4..7: If s=1, then size of data for block download is indicated here.</li>
</ul>
</li>
<li>SDO server is in <a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11a2eee38ba2a2d52890281ae54b12d50b3">CO_SDO_ST_IDLE</a> state and waits for client request. </li>
</ul>
</td></tr>
<tr><td class="fieldname"><a id="gga0b0e614dadcc1c005185b8bc9a7fec11af25ee4e636a98dd72fe4c5bef9bcecf2"></a>CO_SDO_ST_DOWNLOAD_BLK_INITIATE_RSP&#160;</td><td class="fielddoc"><ul>
<li>SDO client waits for response.</li>
<li>SDO server responses:<ul>
<li>byte 0: <b>10100r00</b> binary: (r=1 if server supports generating CRC on data.)</li>
<li>byte 1..3: Object index and subIndex.</li>
<li>byte 4: blksize: Number of segments per block that shall be used by the client for the following block download with 0 &lt; blksize &lt; 128.</li>
<li>byte 5..7: Reserved. </li>
</ul>
</li>
</ul>
</td></tr>
<tr><td class="fieldname"><a id="gga0b0e614dadcc1c005185b8bc9a7fec11a320cc9749db35473265b5203c547bbf8"></a>CO_SDO_ST_DOWNLOAD_BLK_SUBBLOCK_REQ&#160;</td><td class="fielddoc"><ul>
<li>SDO client sends 'blksize' segments of data in sequence:<ul>
<li>byte 0: <b>cnnnnnnn</b> binary: (c=1 if no more segments to be downloaded, enter SDO block download end phase; nnnnnnn is sequence number of segment, 1..127.</li>
<li>byte 1..7: At most 7 bytes of segment data to be downloaded.</li>
</ul>
</li>
<li>SDO server reads sequence of 'blksize' blocks. </li>
</ul>
</td></tr>
<tr><td class="fieldname"><a id="gga0b0e614dadcc1c005185b8bc9a7fec11a70e97f34a6a98014bef1d2eeb3b5247c"></a>CO_SDO_ST_DOWNLOAD_BLK_SUBBLOCK_RSP&#160;</td><td class="fielddoc"><ul>
<li>SDO client waits for response.</li>
<li>SDO server responses:<ul>
<li>byte 0: <b>10100010</b> binary.</li>
<li>byte 1: ackseq: sequence number of last segment that was received successfully during the last block download. If ackseq is set to 0 the server indicates the client that the segment with the sequence number 1 was not received correctly and all segments shall be retransmitted by the client.</li>
<li>byte 2: Number of segments per block that shall be used by the client for the following block download with 0 &lt; blksize &lt; 128.</li>
<li>byte 3..7: Reserved.</li>
</ul>
</li>
<li>If c was set to 1, then communication enters SDO block download end phase. </li>
</ul>
</td></tr>
<tr><td class="fieldname"><a id="gga0b0e614dadcc1c005185b8bc9a7fec11af955593bb966b324bfda361b0364d15b"></a>CO_SDO_ST_DOWNLOAD_BLK_END_REQ&#160;</td><td class="fielddoc"><ul>
<li>SDO client sends SDO block download end:<ul>
<li>byte 0: <b>110nnn01</b> binary: (nnn: number of data bytes, that do <b>not</b> contain data)</li>
<li>byte 1..2: 16 bit CRC for the data set, if enabled by client and server.</li>
<li>byte 3..7: Reserved.</li>
</ul>
</li>
<li>SDO server waits for client request. </li>
</ul>
</td></tr>
<tr><td class="fieldname"><a id="gga0b0e614dadcc1c005185b8bc9a7fec11af511c26db1fb7ba18d6054255b560be7"></a>CO_SDO_ST_DOWNLOAD_BLK_END_RSP&#160;</td><td class="fielddoc"><ul>
<li>SDO client waits for response.</li>
<li>SDO server responses:<ul>
<li>byte 0: <b>10100001</b> binary.</li>
<li>byte 1..7: Reserved.</li>
</ul>
</li>
<li>Block download successfully ends here. </li>
</ul>
</td></tr>
<tr><td class="fieldname"><a id="gga0b0e614dadcc1c005185b8bc9a7fec11a49b5c39c9e5d025c85eedffa28aa22ed"></a>CO_SDO_ST_UPLOAD_BLK_INITIATE_REQ&#160;</td><td class="fielddoc"><ul>
<li>SDO client initiates SDO block upload:<ul>
<li>byte 0: <b>10100r00</b> binary: (r=1 if client supports generating CRC on data.)</li>
<li>byte 1..3: Object index and subIndex.</li>
<li>byte 4: blksize: Number of segments per block with 0 &lt; blksize &lt; 128.</li>
<li>byte 5: pst - protocol switch threshold. If pst &gt; 0 and size of the data in bytes is less or equal pst, then the server may switch to the SDO upload protocol <a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11aa096d10c9eb891cfedddc16276f58aaf">CO_SDO_ST_UPLOAD_INITIATE_RSP</a>.</li>
<li>byte 6..7: Reserved.</li>
</ul>
</li>
<li>SDO server is in <a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11a2eee38ba2a2d52890281ae54b12d50b3">CO_SDO_ST_IDLE</a> state and waits for client request. </li>
</ul>
</td></tr>
<tr><td class="fieldname"><a id="gga0b0e614dadcc1c005185b8bc9a7fec11ae9be0eeb0711890d1b9c5cbfbd204ed8"></a>CO_SDO_ST_UPLOAD_BLK_INITIATE_RSP&#160;</td><td class="fielddoc"><ul>
<li>SDO client waits for response.</li>
<li>SDO server responses:<ul>
<li>byte 0: <b>11000rs0</b> binary: (r=1 if server supports generating CRC on data; s=1 if data size is indicated. )</li>
<li>byte 1..3: Object index and subIndex.</li>
<li>byte 4..7: If s=1, then size of data for block upload is indicated here.</li>
</ul>
</li>
<li>If enabled by pst, then server may alternatively response with <a class="el" href="group__CO__SDOserver.html#gga0b0e614dadcc1c005185b8bc9a7fec11aa096d10c9eb891cfedddc16276f58aaf">CO_SDO_ST_UPLOAD_INITIATE_RSP</a> </li>
</ul>
</td></tr>
<tr><td class="fieldname"><a id="gga0b0e614dadcc1c005185b8bc9a7fec11acc4e87ad1ad20eddd19a60d9592bbada"></a>CO_SDO_ST_UPLOAD_BLK_INITIATE_REQ2&#160;</td><td class="fielddoc"><ul>
<li>SDO client sends second initiate for SDO block upload:<ul>
<li>byte 0: <b>10100011</b> binary.</li>
<li>byte 1..7: Reserved.</li>
</ul>
</li>
<li>SDO server waits for client request. </li>
</ul>
</td></tr>
<tr><td class="fieldname"><a id="gga0b0e614dadcc1c005185b8bc9a7fec11a39f1cb5426ee3c3689ed833cb66e231c"></a>CO_SDO_ST_UPLOAD_BLK_SUBBLOCK_SREQ&#160;</td><td class="fielddoc"><ul>
<li>SDO client reads sequence of 'blksize' blocks.</li>
<li>SDO server sends 'blksize' segments of data in sequence:<ul>
<li>byte 0: <b>cnnnnnnn</b> binary: (c=1 if no more segments to be uploaded, enter SDO block upload end phase; nnnnnnn is sequence number of segment, 1..127.</li>
<li>byte 1..7: At most 7 bytes of segment data to be uploaded. </li>
</ul>
</li>
</ul>
</td></tr>
<tr><td class="fieldname"><a id="gga0b0e614dadcc1c005185b8bc9a7fec11af762eb5a985cf79a3e7423a39b29b328"></a>CO_SDO_ST_UPLOAD_BLK_SUBBLOCK_CRSP&#160;</td><td class="fielddoc"><ul>
<li>SDO client responses:<ul>
<li>byte 0: <b>10100010</b> binary.</li>
<li>byte 1: ackseq: sequence number of last segment that was received successfully during the last block upload. If ackseq is set to 0 the client indicates the server that the segment with the sequence number 1 was not received correctly and all segments shall be retransmitted by the server.</li>
<li>byte 2: Number of segments per block that shall be used by the server for the following block upload with 0 &lt; blksize &lt; 128.</li>
<li>byte 3..7: Reserved.</li>
</ul>
</li>
<li>SDO server waits for response.</li>
<li>If c was set to 1, then communication enters SDO block upload end phase. </li>
</ul>
</td></tr>
<tr><td class="fieldname"><a id="gga0b0e614dadcc1c005185b8bc9a7fec11a98896138e97542e659051fff33b1a692"></a>CO_SDO_ST_UPLOAD_BLK_END_SREQ&#160;</td><td class="fielddoc"><ul>
<li>SDO client waits for server request.</li>
<li>SDO server sends SDO block upload end:<ul>
<li>byte 0: <b>110nnn01</b> binary: (nnn: number of data bytes, that do <b>not</b> contain data)</li>
<li>byte 1..2: 16 bit CRC for the data set, if enabled by client and server.</li>
<li>byte 3..7: Reserved. </li>
</ul>
</li>
</ul>
</td></tr>
<tr><td class="fieldname"><a id="gga0b0e614dadcc1c005185b8bc9a7fec11ab75a573a45778a0c4bea2c50402be03e"></a>CO_SDO_ST_UPLOAD_BLK_END_CRSP&#160;</td><td class="fielddoc"><ul>
<li>SDO client responses:<ul>
<li>byte 0: <b>10100001</b> binary.</li>
<li>byte 1..7: Reserved.</li>
</ul>
</li>
<li>SDO server waits for response.</li>
<li>Block download successfully ends here. Note that this communication ends with client response. Client may then start next SDO communication immediately. </li>
</ul>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="gab433430abe125bb16c08e7be3e034985"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab433430abe125bb16c08e7be3e034985">&#9670;&nbsp;</a></span>CO_OD_configure()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CO_OD_configure </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structCO__SDO__t.html">CO_SDO_t</a> *&#160;</td>
          <td class="paramname"><em>SDO</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__SDOserver.html#ga7587ddcf798747fe6d97d03bf1bf2979">CO_SDO_abortCode_t</a>(*)(<a class="el" href="structCO__ODF__arg__t.html">CO_ODF_arg_t</a> *ODF_arg)&#160;</td>
          <td class="paramname"><em>pODFunc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *&#160;</td>
          <td class="paramname"><em>flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&#160;</td>
          <td class="paramname"><em>flagsSize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Configure additional functionality to one <a class="el" href="group__CO__SDO__objectDictionary.html">Object dictionary</a> entry. </p>
<p>Additional functionality include: <a class="el" href="group__CO__SDO__OD__function.html">Object Dictionary function</a> and <a class="el" href="group__CO__SDOserver.html#ga954a22b6af836082afaf69b0f0cc4c7e" title="Bit masks for flags associated with variable from Object dictionary. ">CO_SDO_OD_flags_t</a>. It is optional feature and can be used on any object in Object dictionary. If OD entry does not exist, function returns silently.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">SDO</td><td>This object. </td></tr>
    <tr><td class="paramname">index</td><td>Index of object in the Object dictionary. </td></tr>
    <tr><td class="paramname">pODFunc</td><td>Pointer to <a class="el" href="group__CO__SDO__OD__function.html">Object Dictionary function</a>, specified by application. If NULL, <a class="el" href="group__CO__SDO__OD__function.html">Object Dictionary function</a> will not be used on this object. </td></tr>
    <tr><td class="paramname">object</td><td>Pointer to object, which will be passed to <a class="el" href="group__CO__SDO__OD__function.html">Object Dictionary function</a>. </td></tr>
    <tr><td class="paramname">flags</td><td>Pointer to array of <a class="el" href="group__CO__SDOserver.html#ga954a22b6af836082afaf69b0f0cc4c7e" title="Bit masks for flags associated with variable from Object dictionary. ">CO_SDO_OD_flags_t</a> defined externally. If zero, <a class="el" href="group__CO__SDOserver.html#ga954a22b6af836082afaf69b0f0cc4c7e" title="Bit masks for flags associated with variable from Object dictionary. ">CO_SDO_OD_flags_t</a> will not be used on this OD entry. </td></tr>
    <tr><td class="paramname">flagsSize</td><td>Size of the above array. It must be equal to number of sub-objects in object dictionary entry. Otherwise <a class="el" href="group__CO__SDOserver.html#ga954a22b6af836082afaf69b0f0cc4c7e" title="Bit masks for flags associated with variable from Object dictionary. ">CO_SDO_OD_flags_t</a> will not be used on this OD entry. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga2532cf0445a91285b6e06e67abb1135d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2532cf0445a91285b6e06e67abb1135d">&#9670;&nbsp;</a></span>CO_OD_find()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> CO_OD_find </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structCO__SDO__t.html">CO_SDO_t</a> *&#160;</td>
          <td class="paramname"><em>SDO</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>&#160;</td>
          <td class="paramname"><em>index</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Find object with specific index in Object dictionary. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">SDO</td><td>This object. </td></tr>
    <tr><td class="paramname">index</td><td>Index of the object in Object dictionary.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Sequence number of the <a class="el" href="group__CO__SDO__objectDictionary.html">Object dictionary</a> entry, 0xFFFF if not found. </dd></dl>

</div>
</div>
<a id="ga8adf901d3819dbbbc3bc978dd4783e9a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8adf901d3819dbbbc3bc978dd4783e9a">&#9670;&nbsp;</a></span>CO_OD_getAttribute()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> CO_OD_getAttribute </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structCO__SDO__t.html">CO_SDO_t</a> *&#160;</td>
          <td class="paramname"><em>SDO</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>&#160;</td>
          <td class="paramname"><em>entryNo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&#160;</td>
          <td class="paramname"><em>subIndex</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get attribute of the given object with specific subIndex. </p>
<p>See <a class="el" href="group__CO__SDOserver.html#ga0244f2d504e0de4f14614884d7319fd0" title="Object Dictionary attributes. ">CO_SDO_OD_attributes_t</a>.</p>
<p>If Object Type is array and subIndex is zero, function always returns 'read-only' attribute. An exception to this rule is ID1003 (Error field). However, this is supposed to be only written by network.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">SDO</td><td>This object. </td></tr>
    <tr><td class="paramname">entryNo</td><td>Sequence number of OD entry as returned from <a class="el" href="group__CO__SDOserver.html#ga2532cf0445a91285b6e06e67abb1135d" title="Find object with specific index in Object dictionary. ">CO_OD_find()</a>. </td></tr>
    <tr><td class="paramname">subIndex</td><td>Sub-index of the object in Object dictionary.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Attribute of the variable. </dd></dl>

</div>
</div>
<a id="ga3ee04247261fbe560132584f727ed99d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3ee04247261fbe560132584f727ed99d">&#9670;&nbsp;</a></span>CO_OD_getDataPointer()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* CO_OD_getDataPointer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structCO__SDO__t.html">CO_SDO_t</a> *&#160;</td>
          <td class="paramname"><em>SDO</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>&#160;</td>
          <td class="paramname"><em>entryNo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&#160;</td>
          <td class="paramname"><em>subIndex</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get pointer to data of the given object with specific subIndex. </p>
<p>If Object Type is array and subIndex is zero, function returns pointer to object-&gt;maxSubIndex variable.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">SDO</td><td>This object. </td></tr>
    <tr><td class="paramname">entryNo</td><td>Sequence number of OD entry as returned from <a class="el" href="group__CO__SDOserver.html#ga2532cf0445a91285b6e06e67abb1135d" title="Find object with specific index in Object dictionary. ">CO_OD_find()</a>. </td></tr>
    <tr><td class="paramname">subIndex</td><td>Sub-index of the object in Object dictionary.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Pointer to the variable in <a class="el" href="group__CO__SDO__objectDictionary.html">Object dictionary</a>. </dd></dl>

</div>
</div>
<a id="ga197661bebb5c451b3f4588fe1604f77d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga197661bebb5c451b3f4588fe1604f77d">&#9670;&nbsp;</a></span>CO_OD_getFlagsPointer()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>* CO_OD_getFlagsPointer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structCO__SDO__t.html">CO_SDO_t</a> *&#160;</td>
          <td class="paramname"><em>SDO</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>&#160;</td>
          <td class="paramname"><em>entryNo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&#160;</td>
          <td class="paramname"><em>subIndex</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get pointer to the <a class="el" href="group__CO__SDOserver.html#ga954a22b6af836082afaf69b0f0cc4c7e" title="Bit masks for flags associated with variable from Object dictionary. ">CO_SDO_OD_flags_t</a> byte of the given object with specific subIndex. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">SDO</td><td>This object. </td></tr>
    <tr><td class="paramname">entryNo</td><td>Sequence number of OD entry as returned from <a class="el" href="group__CO__SDOserver.html#ga2532cf0445a91285b6e06e67abb1135d" title="Find object with specific index in Object dictionary. ">CO_OD_find()</a>. </td></tr>
    <tr><td class="paramname">subIndex</td><td>Sub-index of the object in Object dictionary.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Pointer to the <a class="el" href="group__CO__SDOserver.html#ga954a22b6af836082afaf69b0f0cc4c7e" title="Bit masks for flags associated with variable from Object dictionary. ">CO_SDO_OD_flags_t</a> of the variable. </dd></dl>

</div>
</div>
<a id="gad492842213f493a27c274b01c4e02075"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad492842213f493a27c274b01c4e02075">&#9670;&nbsp;</a></span>CO_OD_getLength()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> CO_OD_getLength </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structCO__SDO__t.html">CO_SDO_t</a> *&#160;</td>
          <td class="paramname"><em>SDO</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>&#160;</td>
          <td class="paramname"><em>entryNo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&#160;</td>
          <td class="paramname"><em>subIndex</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get length of the given object with specific subIndex. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">SDO</td><td>This object. </td></tr>
    <tr><td class="paramname">entryNo</td><td>Sequence number of OD entry as returned from <a class="el" href="group__CO__SDOserver.html#ga2532cf0445a91285b6e06e67abb1135d" title="Find object with specific index in Object dictionary. ">CO_OD_find()</a>. </td></tr>
    <tr><td class="paramname">subIndex</td><td>Sub-index of the object in Object dictionary.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Data length of the variable. </dd></dl>

</div>
</div>
<a id="gaecb9ebca7a4f074d5e73ba977d6c2243"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaecb9ebca7a4f074d5e73ba977d6c2243">&#9670;&nbsp;</a></span>CO_SDO_init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__CO__driver.html#ga1cb2d3466eb0c6d267f3b5ff1a0d9532">CO_ReturnError_t</a> CO_SDO_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structCO__SDO__t.html">CO_SDO_t</a> *&#160;</td>
          <td class="paramname"><em>SDO</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#ga33594304e786b158f3fb30289278f5af">uint32_t</a>&#160;</td>
          <td class="paramname"><em>COB_IDClientToServer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#ga33594304e786b158f3fb30289278f5af">uint32_t</a>&#160;</td>
          <td class="paramname"><em>COB_IDServerToClient</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>&#160;</td>
          <td class="paramname"><em>ObjDictIndex_SDOServerParameter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structCO__SDO__t.html">CO_SDO_t</a> *&#160;</td>
          <td class="paramname"><em>parentSDO</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structCO__OD__entry__t.html">CO_OD_entry_t</a>&#160;</td>
          <td class="paramname"><em>OD</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>&#160;</td>
          <td class="paramname"><em>ODSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structCO__OD__extension__t.html">CO_OD_extension_t</a>&#160;</td>
          <td class="paramname"><em>ODExtensions</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&#160;</td>
          <td class="paramname"><em>nodeId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>&#160;</td>
          <td class="paramname"><em>SDOtimeoutTime_ms</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structCO__CANmodule__t.html">CO_CANmodule_t</a> *&#160;</td>
          <td class="paramname"><em>CANdevRx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>&#160;</td>
          <td class="paramname"><em>CANdevRxIdx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structCO__CANmodule__t.html">CO_CANmodule_t</a> *&#160;</td>
          <td class="paramname"><em>CANdevTx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>&#160;</td>
          <td class="paramname"><em>CANdevTxIdx</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize SDO object. </p>
<p>Function must be called in the communication reset section.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">SDO</td><td>This object will be initialized. </td></tr>
    <tr><td class="paramname">COB_IDClientToServer</td><td>COB ID for client to server for this SDO object. </td></tr>
    <tr><td class="paramname">COB_IDServerToClient</td><td>COB ID for server to client for this SDO object. </td></tr>
    <tr><td class="paramname">ObjDictIndex_SDOServerParameter</td><td>Index in Object dictionary. </td></tr>
    <tr><td class="paramname">parentSDO</td><td>Pointer to SDO object, which contains object dictionary and its extension. For first (default) SDO object this argument must be NULL. If this argument is specified, then OD, ODSize and ODExtensions arguments are ignored. </td></tr>
    <tr><td class="paramname">OD</td><td>Pointer to <a class="el" href="group__CO__SDO__objectDictionary.html">Object dictionary</a> array defined externally. </td></tr>
    <tr><td class="paramname">ODSize</td><td>Size of the above array. </td></tr>
    <tr><td class="paramname">ODExtensions</td><td>Pointer to the externally defined array of the same size as ODSize. </td></tr>
    <tr><td class="paramname">nodeId</td><td>CANopen Node ID of this device. </td></tr>
    <tr><td class="paramname">SDOtimeoutTime_ms</td><td>Timeout time for SDO communication in milliseconds. </td></tr>
    <tr><td class="paramname">CANdevRx</td><td>CAN device for SDO server reception. </td></tr>
    <tr><td class="paramname">CANdevRxIdx</td><td>Index of receive buffer in the above CAN device. </td></tr>
    <tr><td class="paramname">CANdevTx</td><td>CAN device for SDO server transmission. </td></tr>
    <tr><td class="paramname">CANdevTxIdx</td><td>Index of transmit buffer in the above CAN device.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__CO__driver.html#ga1cb2d3466eb0c6d267f3b5ff1a0d9532" title="Return values of some CANopen functions. ">CO_ReturnError_t</a>: CO_ERROR_NO or CO_ERROR_ILLEGAL_ARGUMENT. </dd></dl>

</div>
</div>
<a id="ga100bebd316fd456c67cfa945d97e0dee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga100bebd316fd456c67cfa945d97e0dee">&#9670;&nbsp;</a></span>CO_SDO_initCallbackPre()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CO_SDO_initCallbackPre </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structCO__SDO__t.html">CO_SDO_t</a> *&#160;</td>
          <td class="paramname"><em>SDO</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void(*)(void *object)&#160;</td>
          <td class="paramname"><em>pFunctSignalPre</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize SDOrx callback function. </p>
<p>Function initializes optional callback function, which should immediately start processing of <a class="el" href="group__CO__SDOserver.html#gaf9df5a4eef12be3e585e7601e64185bb" title="Process SDO communication. ">CO_SDO_process()</a> function. Callback is called after SDOserver message is received from the CAN bus or when new call without delay is necessary (SDO block transfer is in progress).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">SDO</td><td>This object. </td></tr>
    <tr><td class="paramname">object</td><td>Pointer to object, which will be passed to pFunctSignalPre(). Can be NULL </td></tr>
    <tr><td class="paramname">pFunctSignalPre</td><td>Pointer to the callback function. Not called if NULL. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga872ca0abe8a4e717e5c03c93ab2b67bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga872ca0abe8a4e717e5c03c93ab2b67bd">&#9670;&nbsp;</a></span>CO_SDO_initTransfer()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__CO__dataTypes.html#ga33594304e786b158f3fb30289278f5af">uint32_t</a> CO_SDO_initTransfer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structCO__SDO__t.html">CO_SDO_t</a> *&#160;</td>
          <td class="paramname"><em>SDO</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&#160;</td>
          <td class="paramname"><em>subIndex</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize SDO transfer. </p>
<p>Find object in OD, verify, fill ODF_arg s.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">SDO</td><td>This object. </td></tr>
    <tr><td class="paramname">index</td><td>Index of the object in Object dictionary. </td></tr>
    <tr><td class="paramname">subIndex</td><td>subIndex of the object in Object dictionary.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, otherwise <a class="el" href="group__CO__SDOserver.html#ga7587ddcf798747fe6d97d03bf1bf2979" title="SDO abort codes. ">CO_SDO_abortCode_t</a>. </dd></dl>

</div>
</div>
<a id="gaf9df5a4eef12be3e585e7601e64185bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf9df5a4eef12be3e585e7601e64185bb">&#9670;&nbsp;</a></span>CO_SDO_process()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__CO__dataTypes.html#gaef44329758059c91c76d334e8fc09700">int8_t</a> CO_SDO_process </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structCO__SDO__t.html">CO_SDO_t</a> *&#160;</td>
          <td class="paramname"><em>SDO</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#ga449976458a084f880dc8e3d29e7eb6f5">bool_t</a>&#160;</td>
          <td class="paramname"><em>NMTisPreOrOperational</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#ga33594304e786b158f3fb30289278f5af">uint32_t</a>&#160;</td>
          <td class="paramname"><em>timeDifference_us</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#ga33594304e786b158f3fb30289278f5af">uint32_t</a> *&#160;</td>
          <td class="paramname"><em>timerNext_us</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Process SDO communication. </p>
<p>Function must be called cyclically.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir"></td><td class="paramname">SDO</td><td>This object. </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">NMTisPreOrOperational</td><td>Different than zero, if <a class="el" href="group__CO__NMT__Heartbeat.html#ga1e8c2a6c0fd4a33183503d25a7c6d744" title="Internal network state of the CANopen node. ">CO_NMT_internalState_t</a> is NMT_PRE_OPERATIONAL or NMT_OPERATIONAL. </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">timeDifference_us</td><td>Time difference from previous function call in [microseconds]. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">timerNext_us</td><td>info to OS - see <a class="el" href="group__CO__CANopen.html#ga7a36da54b801074032622708e06a742e" title="Process CANopen objects. ">CO_process()</a>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0: SDO server is idle. </dd>
<dd>
1: SDO server is in transfer state. </dd>
<dd>
-1: SDO abort just occurred. </dd></dl>

</div>
</div>
<a id="gae4ed459948ee35f9417a16ea90257b18"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae4ed459948ee35f9417a16ea90257b18">&#9670;&nbsp;</a></span>CO_SDO_readOD()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__CO__dataTypes.html#ga33594304e786b158f3fb30289278f5af">uint32_t</a> CO_SDO_readOD </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structCO__SDO__t.html">CO_SDO_t</a> *&#160;</td>
          <td class="paramname"><em>SDO</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>&#160;</td>
          <td class="paramname"><em>SDOBufferSize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read data from <a class="el" href="group__CO__SDO__objectDictionary.html">Object dictionary</a> to internal buffer. </p>
<p>ODF_arg s must be initialized before with <a class="el" href="group__CO__SDOserver.html#ga872ca0abe8a4e717e5c03c93ab2b67bd" title="Initialize SDO transfer. ">CO_SDO_initTransfer()</a>. <a class="el" href="group__CO__SDO__OD__function.html">Object Dictionary function</a> is called if configured.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">SDO</td><td>This object. </td></tr>
    <tr><td class="paramname">SDOBufferSize</td><td>Total size of the SDO buffer.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, otherwise <a class="el" href="group__CO__SDOserver.html#ga7587ddcf798747fe6d97d03bf1bf2979" title="SDO abort codes. ">CO_SDO_abortCode_t</a>. </dd></dl>

</div>
</div>
<a id="ga037d8b815828458a887aad47c3ca3f71"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga037d8b815828458a887aad47c3ca3f71">&#9670;&nbsp;</a></span>CO_SDO_writeOD()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__CO__dataTypes.html#ga33594304e786b158f3fb30289278f5af">uint32_t</a> CO_SDO_writeOD </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structCO__SDO__t.html">CO_SDO_t</a> *&#160;</td>
          <td class="paramname"><em>SDO</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write data from internal buffer to <a class="el" href="group__CO__SDO__objectDictionary.html">Object dictionary</a>. </p>
<p>ODF_arg s must be initialized before with <a class="el" href="group__CO__SDOserver.html#ga872ca0abe8a4e717e5c03c93ab2b67bd" title="Initialize SDO transfer. ">CO_SDO_initTransfer()</a>. <a class="el" href="group__CO__SDO__OD__function.html">Object Dictionary function</a> is called if configured.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">SDO</td><td>This object. </td></tr>
    <tr><td class="paramname">length</td><td>Length of data (received from network) to write.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, otherwise <a class="el" href="group__CO__SDOserver.html#ga7587ddcf798747fe6d97d03bf1bf2979" title="SDO abort codes. ">CO_SDO_abortCode_t</a>. </dd></dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Tue Jun 9 2020 17:29:32 for CANopenNode by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>
